package com.ruoyi.system.mapper;

import java.util.List;
import com.ruoyi.system.domain.BizInspectionPlan;
import com.ruoyi.system.domain.BizInspectionResult;

/**
 * 来料检验计划Mapper接口
 * 
 * @author ruoyi
 * @date 2025-10-30
 */
public interface BizInspectionPlanMapper 
{
    /**
     * 查询来料检验计划
     * 
     * @param planId 来料检验计划主键
     * @return 来料检验计划
     */
    public BizInspectionPlan selectBizInspectionPlanByPlanId(Long planId);

    /**
     * 查询来料检验计划列表
     * 
     * @param bizInspectionPlan 来料检验计划
     * @return 来料检验计划集合
     */
    public List<BizInspectionPlan> selectBizInspectionPlanList(BizInspectionPlan bizInspectionPlan);

    /**
     * 新增来料检验计划
     * 
     * @param bizInspectionPlan 来料检验计划
     * @return 结果
     */
    public int insertBizInspectionPlan(BizInspectionPlan bizInspectionPlan);

    /**
     * 修改来料检验计划
     * 
     * @param bizInspectionPlan 来料检验计划
     * @return 结果
     */
    public int updateBizInspectionPlan(BizInspectionPlan bizInspectionPlan);

    /**
     * 删除来料检验计划
     * 
     * @param planId 来料检验计划主键
     * @return 结果
     */
    public int deleteBizInspectionPlanByPlanId(Long planId);

    /**
     * 批量删除来料检验计划
     * 
     * @param planIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteBizInspectionPlanByPlanIds(Long[] planIds);

    /**
     * 批量删除检验结果明细
     * 
     * @param planIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteBizInspectionResultByPlanIds(Long[] planIds);
    
    /**
     * 批量新增检验结果明细
     * 
     * @param bizInspectionResultList 检验结果明细列表
     * @return 结果
     */
    public int batchBizInspectionResult(List<BizInspectionResult> bizInspectionResultList);
    

    /**
     * 通过来料检验计划主键删除检验结果明细信息
     * 
     * @param planId 来料检验计划ID
     * @return 结果
     */
    public int deleteBizInspectionResultByPlanId(Long planId);

    /**
     * 查询当天最大检验计划编号（按日期前缀）
     * @param prefix 形如 IPyyyyMMdd
     * @return 最大检验计划编号
     */
    public String selectMaxPlanNoByDate(String prefix);
}
